\subsection{External Components}
\label{implementation:software:externaltools}
In order to reduce the development period external tools has been included in the software. These tools include FFmpeg and \verb|kodo| which will be described in the following.

\subsubsection{FFmpeg}
FFmpeg is a cross-platform video decoding and encoding tool \cite{FFMPEG}, which is used for transcoding video files. The FFmpeg project also includes \verb|libavcodec|, a set of video application development libraries. The functionality of these libraries are used in the implemented software, to get bit-stream-level access to the video data in focus. 
%How this functionality is utilized will be described further in the following sections. FIXME\fixme{link til sections}
The source code is available at \cite{git_ffmpeg}.

\subsubsection{Kodo}
The library \verb|kodo| is used for its \ac{NC} capabilities. Implemented in C++ by Steinwurf ApS, \verb|kodo| grants functionality of both \ac{RLNC} encoding and decoding (among others) \cite{steinwurf}. Several instances of both \verb|kodo| encoders and decoders are used in a \ac{UEP} set-up, one encoder and one decoder for each layer. The usage of \verb|kodo| will be explained further in Section \ref{implementation:software:networkcoding}. Two of \verb|kodo|'s dependencies, \verb|fifi| and \verb|sak| are provided by Steinwurf as well. \verb|fifi| provides finite field arithmetics in C++. \verb|sak| provides miscellaneous functions. The source code is available at GitHub \cite{git_kodo, git_sak, git_fifi}.
